---
title: Internationalization
---

<Callout type="warning" title="注意事项">
  并非所有插件都包含了语言包，我们会在每个功能的文档对此进行说明。
</Callout>

## `mergeLocales` 方法 [#mergeLocales]

`mergeLocales` 方法用于将多个插件或预设的语言包合并为一个完整的语言包对象，你可以通过以下方式使用它：

<Tabs items={['预设模式', '插件模式']}>
  <Tab>
    ```typescript
    import { mergeLocales } from '@univerjs/presets'

    // 你可以传入多个语言包对象进行合并
    const locales = mergeLocales(
      plugin1Locales,
      plugin2Locales,
      presetLocales,
    )
    // 也可以传入一个语言包对象数组
    const locales = mergeLocales([
      plugin1Locales,
      plugin2Locales,
      presetLocales,
    ])
    ```
  </Tab>
  <Tab>
    ```typescript
    import { mergeLocales } from '@univerjs/core'

    // 你可以传入多个语言包对象进行合并
    const locales = mergeLocales(
      plugin1Locales,
      plugin2Locales,
      presetLocales,
    )
    // 也可以传入一个语言包对象数组
    const locales = mergeLocales([
      plugin1Locales,
      plugin2Locales,
      presetLocales,
    ])
    ```
  </Tab>
</Tabs>

## 自定义语言包

Univer 也支持自定义语言包，你可以根据需要自行组装语言包对象并传入 `Univer` 实例。可供参考的预设语言包一般存放在 `<rootDir>/packages/<PLUGIN_NAME>/locale` 目录下。

```typescript
const univer = new Univer({
  locale: 'ja-JP',
  locales: {
    'ja-JP': {
      shortcut: {
        undo: '元に戻す',
        redo: 'やり直す',
      },
    },
  },
})
```

## 贡献语言包

Univer 目前提供了以下内置语言包：

- `zh-CN`：简体中文
- `en-US`：英文
- `zh-TW`：繁体中文
- `ru-RU`：俄文
- `vi-VN`：越南文
- `fa-IR`：波斯文
- `fr-FR`：法文
- `ko-KR`：韩文
- `es-ES`：西班牙文

其他的语言尚未支持。我们欢迎来自五湖四海的开发者为 Univer 添加或者改进语言包。
